#include <stdio.h>
#include <malloc.h>
#define N 6

int x[N]={3, 2, 3, 1, 1, 4};
int *resize(int *vv);

int main() {
  int i;   int *v;
  v=&x[0];
  for (i=0; i<N; i++) v[i]--;
  v=resize(v);
  return 0;
}

int *resize(int *vv) {
  int i, j;
  int nz=0;
  int *tmp;
  int start=0;
  for (i=0; i<N; i++) if(vv[i]!=0) nz++;
  tmp=(int *)calloc(nz+1, sizeof(int ));
  for(j=0; j<nz+1; j++)
    for (i=start; i<N; i++)
      if (vv[i]!=0) {
	tmp[j]=vv[i]; start = i+1;
	break;};
  tmp[nz]=N;
  for (i=0; i< nz+1; i++) printf("%i ", tmp[i]);
  return tmp;
}
